<?php
/**
 * 微信企业付款API
 * @apiDefine WechatMchPay
 * @category app\wx\logic
 * @author zw <773766958@qq.com>
 */
namespace  addons\kuerp\library\wx;

class WxMchPay extends WxPayDataBase
{

	/**
	 * 微信企业转账
	 * @author zw
	 * @create_time 2019/04/09
	 */
	public function transfers()
	{

		$url  = "https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers";
		$data = [
			'mch_appid'        => '',
			'mchid'            => '',
			'nonce_str'        => '',//随机字符串
			'partner_trade_no' => '',//商户订单号
			'openid'           => '',//用户openid
			'check_name'       => 'NO_CHECK',//校验用户姓名选项 	NO_CHECK：不校验真实姓名
			'amount'           => '',//企业付款金额，单位为分
			'desc'             => '',//企业付款备注
			'spbill_create_ip' => '',//该IP同在商户平台设置的IP白名单中的IP没有关联，该IP可传用户端或者服务端的IP。
		];
	}

	/**
	 * 设置申请商户号的appid或商户号绑定的appid
	 * @param string $value
	 **/
	public function SetMchAppid($value)
	{

		$this->values['mch_appid'] = $value;
	}

	/**
	 * 获取申请商户号的appid或商户号绑定的appid
	 * @return 值
	 **/
	public function GetMchAppid()
	{

		return $this->values['mch_appid'];
	}

	/**
	 * 判断申请商户号的appid或商户号绑定的appid是否存在
	 * @return true 或 false
	 **/
	public function IsAppidSet()
	{

		return array_key_exists('mch_appid', $this->values);
	}

	/**
	 * 设置    微信支付分配的商户号
	 * @param string $value
	 **/
	public function SetMchid($value)
	{

		$this->values['mchid'] = $value;
	}

	/**
	 * 获取    微信支付分配的商户号
	 * @return 值
	 **/
	public function GetMchid()
	{

		return $this->values['mchid'];
	}

	/**
	 * 判断    微信支付分配的商户号是否存在
	 * @return true 或 false
	 **/
	public function IsMchidSet()
	{

		return array_key_exists('mchid', $this->values);
	}

	/**
	 * 随机字符串
	 * @param string $value
	 **/
	public function SetNonceStr($value)
	{

		$this->values['nonce_str'] = $value;
	}


	/**
	 * 判断随机字符串是否存在
	 * @return true 或 false
	 **/
	public function IsNonceStrSet()
	{

		return array_key_exists('nonce_str', $this->values);
	}

	/**
	 * 设置商户订单号
	 * @param string $value
	 **/
	public function SetPartnerTradeNo($value)
	{

		$this->values['partner_trade_no'] = $value;
	}

	/**
	 * 判断商户订单号是否存在
	 * @return true 或 false
	 **/
	public function IsPartnerTradeNoSet()
	{

		return array_key_exists('partner_trade_no', $this->values);
	}

	/**
	 * 设置用户openid
	 * @param string $value
	 **/
	public function SetOpenid($value)
	{

		$this->values['openid'] = $value;
	}

	/**
	 * 判断用户openid是否存在
	 * @return true 或 false
	 **/
	public function IsOpenidSet()
	{

		return array_key_exists('openid', $this->values);
	}

	/**
	 * 设置金额
	 * @param string $value
	 **/
	public function SetAmount($value)
	{

		$this->values['amount'] = $value;
	}

	/**
	 * 判断金额是否存在
	 * @return true 或 false
	 **/
	public function IsAmountSet()
	{

		return array_key_exists('amount', $this->values);
	}

	/**
	 * 设置商户备注
	 * @param string $value
	 **/
	public function SetDesc($value)
	{

		$this->values['desc'] = $value;
	}

	/**
	 * 判断商户备注是否存在
	 * @return true 或 false
	 **/
	public function IsDescSet()
	{

		return array_key_exists('desc', $this->values);
	}

	/**
	 * 设置Ip地址
	 **/
	public function SetSpbillCreateIp($value)
	{

		$this->values['spbill_create_ip'] = $value;
	}

	/**
	 * 判断Ip地址是否存在
	 * @return true 或 false
	 **/
	public function IsSpbillCreateIpSet()
	{

		return array_key_exists('spbill_create_ip', $this->values);
	}

	/**
	 * 设置收款用户姓名
	 */
	public function SetReUserName($value)
	{

		$this->values['re_user_name'] = $value;
	}

	/**
	 * 设置设备号
	 */
	public function SetDeviceInfo($value)
	{

		$this->values['device_info'] = $value;
	}

	/**
	 * 校验用户姓名选项NO_CHECK：不校验真实姓名 FORCE_CHECK：强校验真实姓名
	 */
	public function SetCheckName($value)
	{

		$this->values['check_name'] = $value;
	}

	/**
	 * 设置签名，详见签名生成算法
	 * @param string $value
	 **/
	public function SetSign($config)
	{
		$sign = $this->MakeSign($config,false);
		$this->values['sign'] = $sign;
		return $sign;
	}
}
